# 字符串与常用方法讲解
str1="python"
print(str1)
# 字符串有对应的下标
# 可以通过下标进行取值：如变量[下标]
# 字符串的下标从0开始
print(str1[0])
# print(str1[7])
# 当下标超出字符串的最大长度时，会引发下标越界异常
# 切片是指截取字符串中的其中一段内容。
# 切片使用语法：[起始下标：结束下标：步长]
# 切片截取的内容不包含结束下标对应的数据，步长指的是隔几个下标获取一个字符。
print(str1[0:4:2])
# 下标会越界，切片不会
print(str1[0:9])
# 字符串可以通过遍历的方式进行获取每个元素的
for item in str1:
    print(item)
    pass

# 切片中第三个参数  步长   可以省略不写。默认为1
# 可以从右向左取值；此处步长为负数
print(str1[5:2:-1])
# 切片中的第一个参数可以省略，默认为0
print(str1[:2])
# 切片中的第二个参数可以省略，默认操字符串的最大下标+1
print(str1[0:])
# 切片中也可以三个参数全部省略，用::去代替，此时默认取全部值
print(str1[::])
# 将切面中前两个参数全部省略，最后一个参数为-1；可以实现倒叙取值
print(str1[::-1])
print(str1[::-2])


# 字符串的常用方法
# capitalize：将字符串的首字母变大写
print(str1)
print(str1.capitalize())
# startswith以xxx为开头，是则返回True，反之返回False
print(str1.startswith("p"))
# endswith以xxx为结尾，是则返回True，反之返回False
print(str1.endswith("o"))
#find检查在字符串中是否含有指定的元素，有的话则返回该元素对应的下标；反之返回-1
print(str1.find("a"))

#isalnum()判断是否是字母和数字
# （若字符串中的内容只有数字和字符构成，则返回True，反之（空字符串或有标点符号等特殊符号时会返回False））
print("python，123".isalnum())
# isalpha()判断是否是字母
print("123".isalpha())
# isdigit()判断是否是数字
print("abc".isdigit())

# islower()判断是否是小写(判断里面的元素是否都为大写，如果是，则返回True，反之返回False)
print("PYTHON".islower())
print("pytHon".islower())

# join()循环取出所有值用xx去连接
print(".".join(str1))  #p.y.t.h.o.n

# lower将字符串中的内容转换成小写
print("PythOn".lower())
# upper将字符串中的内容转换成大写
print("PythOn".upper())

# swapcase小写变大写，大写变小写
print("PythOn".swapcase())

str2="    python      "
print(str2)
# lstrip去除字符串左侧的空格
print(str2.lstrip())
# rstrip去除字符串右侧的空格
print(str2.rstrip())
# strip去除字符串两边的空格
print(str2.strip())

# split()切割字符串,以指定的字符进行切割，将结果放在列表中。
str3="白日依山尽，黄河入海流，欲穷千里目，更上一层楼"
print(str3.split("，"))

# title()把每个单词的首字母变成大写
print("how are you".title())

# replace(old, new, count=None)
#old被换字符串，new替换字符串，count换多少个。无count表示全部替换。
print("how are you".replace("o","i",1))

# count()统计出现的次数
print("how are you".count("o"))
# len获取字符串长度的
print(str1)
print(len(str1))
